package com.etc.service;


import com.etc.entity.*;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;


public interface LiveService {

    /**
     * 根据ID查询直播间
     * @param roomId
     * @return
     */
    Room queryRoomById(String roomId);

    /**
     * 查询所有直播间
     * @return
     */
    PageInfo<Room> queryRoom(String Anchor, String roomName,int pageNo,int pageSize);

    /**
     * 添加房间
     * @param room
     * @return
     */
    boolean addRoom(Room room);
    
    /**
     * 更新直播间信息
     * @param room
     * @return
     */
    boolean updateRoom(Room room);

    /**
     * 删除房间
     * @param roomId
     * @return
     */
    boolean deleteRoom(String roomId);

    /**
     * 查询所有分类
     * @return
     */
    PageInfo<Type> queryType(String typeName, int pageNo, int pageSize);

    /**
     * 根据名字找分类
     * @param typeName
     * @return
     */
    Type queryTypeByTypeName(String typeName);

    /**
     * 这个分类下是否有视频或者直播间
     * @param typeId
     * @return
     */
    boolean queryTypeByTypeId(@Param("typeId")String typeId);

    /**
     * 删除
     * @param typeId
     * @return
     */
    boolean deleteType(String typeId);

    /**
     * 查询所有用户
     * @return
     */
    PageInfo<User> queryUser(String userName, int pageNo, int pageSize);

    /**
     * 添加弹幕
     * @param chat
     * @return
     */
    boolean addChat(Chat chat);

    /**
     * 查询所有礼物
     * @return
     */
    List<Gift> queryGiftList();


    /**
     * 送礼流程
     * @param giftId
     * @param userId
     * @return
     */
    GiftRecord getRecord(String giftId,String userId);

    /**
     * 查询所有礼物
     * @return
     */
    PageInfo<Gift> queryGift(String giftName,int pageNo,int pageSize);

    /**
     * 添加礼物
     * @param gift
     * @return
     */
    boolean addGift(Gift gift);

    /**
     * 修改礼物
     * @param gift
     * @return
     */
    boolean setGift(Gift gift);

    /**
     * 删除礼物
     * @param giftId
     * @return
     */
    boolean deleteGift(String giftId);

    /**
     * 分页查询礼物记录表
     * @param giftRecordId
     * @param giftName
     * @param pageNo
     * @param pageSize
     * @return
     */
    PageInfo<GiftRecord> getGiftRecordList(String giftRecordId,String giftName, int pageNo, int pageSize);


    /**
     * 添加分类
     * @param type
     * @return
     */
    boolean addType(Type type);

    /**
     * 修改分类
     * @param type
     * @return
     */
    boolean updateType(Type type);

    /**
     * 根据关注人数排序
     * @param pageNo
     * @param pageSize
     * @return
     */
    PageInfo<Room> queryRoomListToConcernNum(int pageNo,int pageSize);

    /**
     * 根据用户id查询是否已是主播
     * @param userId
     * @return
     */
    Room queryRoomToUserId(String userId);
}
